﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using DAplicaciones1;

namespace persistencia
{
    class BrCd:BrItem
    {
        public override void agregar(Object o)
        {
            try
            {
                Cd cd = (Cd)o;
                string sentencia;
                base.agregar(o);
                sentencia = "Insert into Cd values ('" + cd.OID + "','" + cd.Artista + "','" + cd.Canciones + "')";
                Conexion.ejecutarse(sentencia);
            }
            catch (Exception e1)
            {
                throw new System.ArgumentException("No se pudo insertar el cd en la Base de datos");
            }
        }
        public override void modificar(Object o)
        {

        }

        public override void eliminar(Object o)
        {

        }

        public override void traerDatos(Object o)
        {


        }


        public override ArrayList traerLista(Object o)
        {

            ArrayList al = new ArrayList();
            Cd cd = (Cd)o;
            string sentencia = "select * from ((cd inner join item i on i.itemOID=cd.itemOID)inner Join ContenidoRelacionado cr on cr.itemOID=cd.itemOID) inner join accesoOnline ao on ao.itemOID=cd.itemOID";
            Conexion.traerDatos(sentencia);
            while (Conexion.DataR.Read())
            {
                cd = new Cd();
                cd.OID = Conexion.obtenerValor("i.itemOID").ToString();
                cd.Nombre = Conexion.obtenerValor("Nombre").ToString();
                cd.Costo = Double.Parse(Conexion.obtenerValor("Costo").ToString());
                cd.Precio = Double.Parse(Conexion.obtenerValor("i.Precio").ToString());
                cd.Artista = Conexion.obtenerValor("Artista").ToString();
                cd.Canciones = int.Parse(Conexion.obtenerValor("Canciones").ToString());
                ContenidoRelacionado cr=new ContenidoRelacionado();
                cr.OID=Conexion.obtenerValor("i.itemOID").ToString();
                cr.Precio = Double.Parse(Conexion.obtenerValor("cr.Precio").ToString());
                cd.Agregados.Add(cr);
                AccesoOnline ao=new AccesoOnline();
                ao.OID=Conexion.obtenerValor("i.itemOID").ToString();
                ao.Precio=Double.Parse(Conexion.obtenerValor("ao.Precio").ToString());
                cd.Agregados.Add(ao);
                TiempoEntrega t = new TiempoEntrega();
                cd.Agregados.Add(t);
                al.Add(cd);
            }

            Conexion.finConsulta();

            return al;
        }

    }
}
